@南馆潇湘
3年前 提问
1个回答

American Fuzzy Lop 是什么

Ann
3年前

American Fuzzy Lop是一个结合了极其简单但是有坚如磐石的工具指引的遗传算法的暴力fuzzer。它使用了一个边缘覆盖的修改的表单来轻易地pick up不易察觉的,局部尺度变化到程序控制流中。

简单来说,整个算法可以归纳为如下:

  • 加载用户提供的初始测试用例到一个队列中,
  • 从队列中取得下一个输入文件,
  • 尝试裁剪测试用例的大小并降到最小,同时并不改变程序的衡量行为,
  • 使用一个均衡的,并且对传统fuzzing策略研究透彻的变化来重复转变文件,
  • 如果任意一个生成的转变导致了一个由一起记录的新的状态转换,增加转变的输出作为一个新的入口在队列中,
  • 重复步骤2

被发现的测试用例同样需要周期地剔除来排除一部分测试用例,这些测试用例已经被新的,更高的覆盖率发现已经被淘汰;同时经历一些其它工具驱动的努力最小化步骤。